package Principal;


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JScrollPane;
import javax.swing.text.Element;
import javax.swing.JTextArea;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * EditorTexto.java
 *
 * Created on 2/09/2011, 04:05:02 PM
 */

/**
 *
 * @author rjimenez
 */
public class EditorTexto extends javax.swing.JPanel {

    JTextArea lineas;
    public JTextArea jTextArea1;
    String Archivo;
    boolean estado;
    String nombre;
    String path;

    /** Creates new form EditorTexto */
    /*Metodo que inicializa el editor de texto*/
    public EditorTexto() {
        initComponents();


        lineas = new JTextArea("1");
        jTextArea1 = new JTextArea();
        JScrollPane jsp = new JScrollPane();


		lineas.setBackground(new Color(51, 153,255));
		lineas.setEditable(false);
                
                jTextArea1.addKeyListener(new java.awt.event.KeyAdapter() {

            @Override
                    public void keyTyped(java.awt.event.KeyEvent evt) {
                        
                         estado = false;
                    }
                });

		jTextArea1.getDocument().addDocumentListener(new DocumentListener(){
			public String getText(){
				int caretPosition = jTextArea1.getDocument().getLength();
				Element root = jTextArea1.getDocument().getDefaultRootElement();
				String text = "1" + System.getProperty("line.separator");
				for(int i = 2; i < root.getElementIndex( caretPosition ) + 2; i++){
					text += i + System.getProperty("line.separator");
				}
				return text;
			}
			@Override
			public void changedUpdate(DocumentEvent de) {
				lineas.setText(getText());
                                
                                lineas.updateUI();
                                
			}

			@Override
			public void insertUpdate(DocumentEvent de) {
				lineas.setText(getText());
                               
                                lineas.updateUI();
                                
                                
			}

			@Override
			public void removeUpdate(DocumentEvent de) {
				lineas.setText(getText());
                                
                                lineas.updateUI();
                                
			}

		});
                
                
                setLayout(new FlowLayout());
                
                jsp.setPreferredSize(new Dimension(700,340));
                jsp.getViewport().add(jTextArea1);

		jsp.setRowHeaderView(lineas);
		jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                add(jsp,BorderLayout.CENTER);
                estado = true;
		


    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        setPreferredSize(new java.awt.Dimension(400, 400));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
    }// </editor-fold>//GEN-END:initComponents


    // Variables declaration - do not modify//GEN-BEGIN:variables
    // End of variables declaration//GEN-END:variables


    /*devuelven y permiten asignar un nuevo valor a los atributos declarados*/
    public String getArchivo() {
        return Archivo;
    }

    public void setArchivo(String Archivo) {
        this.Archivo = Archivo;
    }

    public boolean getEstado() {
        return estado;
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    
    public void setContenido(String contenido)
    {
        jTextArea1.setText(contenido);
    }
    
    public String getContenido()
    {
        return jTextArea1.getText();
    }
    
    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }
    
    public void Inicializar(String nom, String dir, String contenido )
    {
        nombre = nom;
        path = dir;
        setContenido(contenido);
    }
    
    public void copiar()
    {
        jTextArea1.copy();
    }
    
    public void pegar()
    {
        jTextArea1.paste();
    }
    
    public void cortar()
    {
        jTextArea1.cut();
    }
    
    


}
